扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。
日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。 写配置文件 #配置文件settingfilename.ini log4j.rootLogger=INFO, A1, A2 #setting for appender A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n #setting for appender A2 log4j.appender. A2=org.apache.log4j.RollingFileAppender log4j.appender. A2.File=example.log log4j.appender. A2.MaxFileSize=100KB log4j.appender. A2.MaxBackupIndex=1 log4j.appender. A2.layout=org.apache.log4j.PatternLayout log4j.appender. A2.layout.ConversionPattern=%p %t %c - %m%n
注意:其中的log4j.appender必须都为小写 注释: 1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。指定输出只显示比该级别以上的信息,所有比该级别低的信息都不会被显示。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为 log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN 其中,Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式(布局),其语法为: log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 … log4j.appender.appenderName.layout.option = valueN 其中,Log4j提供的layout有以下几种: org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4.当layout为PatternLayout时,ConversionPattern的格式有下面选项: %r: 自程序开始后消耗的毫秒数 %t: 表示日志记录请求生成的线程 %p: 表示日志语句的优先级 %r: 与日志请求相关的类别名称 %c: 信息所在的类名 %m%n: 表示消息的内容
5.配置文件同样适用于服务器端和客户端。
代码中的使用 1. import中加入以下几行: import org.apache.log4j.PropertyConfigurator ; import org.apache.log4j.Logger ; import org.apache.log4j.Level ; 2. 定义Logger变量 static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ; 3. 读配置文件 PropertyConfigurator.configure (String settingfilename) ; 4. 显示日志信息 按显示级别显示日志信息 logger.debug(String log_info); 用于显示调试信息 logger.info (String log_info); 用于显示系统提示信息 logger.warn(String log_info); 用于显示警告或特殊提示 logger.error(String log_info); 用于显示错误信息,一般在异常中使用。例如: catch(IOException e) { logger.error("IOException!"); System.exit(0); }
以上只是很简单的log4j包的一般使用,如果在使用中遇到问题,请查看包的API得到更详细的信息! |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。